package sanrenxing.Paper.dao;

import sanrenxing.Paper.domain.*;

import java.util.ArrayList;
import java.util.List;

/**
 * 功能：试卷信息表的数据层接口
 * 编写者：蒋玲苹
 * 日期：20200928
 * 版本：1.0
 */
public interface PaperDao {
    /**
     * 添加一行数据
     * @param paper
     * @return
     */
    public int add(Paper paper);
    /**
     * 根据主键从试卷表中删除一行数据
     * @param paperId
     * @return
     */
    public int delete(int paperId);
    /**
     * 将数据修改到数据库表中
     * @param paper
     * @return影响的行数（1，修改成功，0，修改失败）
     */
    public int update(Paper paper);

    /**
     * 查询一行数据
     * @param paperId
     * @return
     */
    public Paper findById(int paperId);

    /**
     * 查询所有数据
     * @return
     */
    public List<Paper> findAll();

    /**
     * 多条件查询
     * @param rows 每页行数
     * @param pages 页数
     * @param condition 条件
     * @return 试卷对象
     */
    public List<PaperTo> findByPage(int rows, int pages, String condition);

    /**
     * 条件统计
     * @param condition
     * @return
     */
    public int count (String condition);

    /**
     * 获取查询条件
     * @param paper
     * @return
     */
    public String getCondition(Paper paper);

    /**
     * 通过班级名称查询班级编号
     * @param className
     * @return
     */
    public int findClassId(String className);

    /**
     * 通过科目名称查询科目编号
     * @param courseName
     * @return
     */
    public int findCourseId(String courseName);

    /**
     * 通过题目编号查询题目
     * @param subjectIds
     * @return
     */
    public Subjects findSubjectIds(String subjectIds);

    /**
     * 查询试卷编号的方法
     * @return
     */
    public int selectStudentStatu();

    /**
     * 添加学员状态
     * @param paperId
     * @param s
     * @param classId
     */
    public void addStuStatu(int paperId, Student s,int classId);

    /**
     * 通过试卷编号查询试卷对应信息
     * @param paperId
     * @return
     */
    public Paper findPaperMsg(int paperId);

    /**
     * 通过班级编号查询班级名称
     * @param classId
     * @return
     */
    public String findClassName(int classId);

    /**
     * 添加公告信息
     * @param addNotice
     */
    public void addNoticeMsg(AddNotice addNotice);

    /**
     * 通过试卷编号删除考生状态对应信息
     */
    public void deleteStatu(int paperId);

    /**
     * 通过班级编号查询班级对应所有学员的信息
     * @param classId
     * @return
     */
    public List<Student> QueryAllStudent(int classId);

    /**
     * 通过科目编号查询科目名称
     * @param courseId
     * @return
     */
    public String findcourseName(int courseId);
}
